package com.ruoyi.project.configureSystem.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.RandomTool;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.project.configureSystem.mapper.CAreaMapper;
import com.ruoyi.project.configureSystem.domain.CArea;
import com.ruoyi.project.configureSystem.service.ICAreaService;

/**
 * 区域信息Service业务层处理
 *
 * @author wangshuo
 * @date 2021-04-12
 */
@Service
public class CAreaServiceImpl implements ICAreaService
{
    @Autowired
    private CAreaMapper cAreaMapper;

    /**
     * 查询区域信息
     *
     * @param id 区域信息ID
     * @return 区域信息
     */
    @Override
    public CArea selectCAreaById(String id)
    {
        return cAreaMapper.selectCAreaById(id);
    }

    /**
     * 查询区域信息列表
     *
     * @param cArea 区域信息
     * @return 区域信息
     */
    @Override
    public List<CArea> selectCAreaList(CArea cArea)
    {
        return cAreaMapper.selectCAreaList(cArea);
    }

    /**
     * 新增区域信息
     *
     * @param cArea 区域信息
     * @return 结果
     */
    @Override
    public int insertCArea(CArea cArea)
    {
        cArea.setId("A"+ RandomTool.generatorNum());
        cArea.setCreateTime(DateUtils.getNowDate());
        cArea.setCreateBy(SecurityUtils.getUsername());
        if(cArea.getParentId()==null){
            cArea.setParentId("0");
        }else {
            CArea cArea1 = cAreaMapper.selectCAreaById(cArea.getParentId());
            String ancestors = cArea1.getAncestors();
            //拼接anstors
            if(StringUtils.isNotBlank(ancestors)){
                cArea.setAncestors(ancestors+","+cArea1.getId());
            }else {
                cArea.setAncestors(cArea1.getId());
            }
        }
        return cAreaMapper.insertCArea(cArea);
    }

    /**
     * 修改区域信息
     *
     * @param cArea 区域信息
     * @return 结果
     */
    @Override
    public int updateCArea(CArea cArea)
    {
        cArea.setUpdateTime(DateUtils.getNowDate());
        return cAreaMapper.updateCArea(cArea);
    }

    /**
     * 批量删除区域信息
     *
     * @param ids 需要删除的区域信息ID
     * @return 结果
     */
    @Override
    public int deleteCAreaByIds(String[] ids)
    {
        return cAreaMapper.deleteCAreaByIds(ids);
    }

    /**
     * 删除区域信息信息
     *
     * @param id 区域信息ID
     * @return 结果
     */
    @Override
    public int deleteCAreaById(String id)
    {
        return cAreaMapper.deleteCAreaById(id);
    }
}
